package controlador;

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

public class TratamientoImgs {

	/**
	 * Metodo para obtener una imagen a partir de una url. La imagen tendra
	 * dimension <widht> x <height>
	 * 
	 * @param url : url de la imagen
	 * @param width : anchura de la imagen (px)
	 * @param height : altura de la imagen (px)
	 * @return imagen de (<width> x <height>) de la <url>
	 * @throws IOException
	 */
	public static Image getImage(String url, int width, int height) throws IOException {
		Image img = null;
		URL imgurl = new URL(url);
		img = ImageIO.read(imgurl);
		img = resizeImage(img, width, height);

		return img;
	}

	/**
	 * A partir de una imagen, le cambia la dimension a
	 * <width> x <height>
	 * 
	 * @param image : imagen a reescalar
	 * @param width : anchura de la imagen (px)
	 * @param height : altura de la imagen (px)
	 * @return imagen de (<width> x <height>) de la url
	 */
	public static BufferedImage resizeImage(Image image, int width,
			int height) {
		BufferedImage bufferedImage = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		Graphics2D graphics2D = bufferedImage.createGraphics();
		graphics2D.setComposite(AlphaComposite.Src);
		graphics2D.drawImage(image, 0, 0, width, height, null);
		graphics2D.dispose();

		return bufferedImage;
	}

}
